home *** CD-ROM | disk | FTP | other *** search
/ BBS Toolkit / BBS Toolkit.iso / programs / mbbs12d.zip / MACROFIL.MAC < prev    next >
Text File  |  1992-06-23  |  17KB  |  548 lines

  1.  
  2.                          MACROFIL.MAC v1.2d
  3.                 by Jeff Oberlee   (C)opyright 1992
  4.  
  5. {:alr}  {MACL MACROBBS.MAC,WF3}     {:alu}  {MACL MACROBBS.MAC,bbs}
  6.  
  7. {:esc_menu}
  8.   {IFCA ,ESM}  {SEND ^J^M%an7%%an9%Time comes to a grinding halt!  %an0}
  9. {:ESM}  {SETE-P0 ESM2}  {SETV ch}
  10.   {PARM ,,,,0}
  11.   {INPU ch, PRESS:  [ENTER] to CHAT, [U]seredit, [D]OS, [H]angup}
  12.   {COMP ch,h}  {IFCO ESM4}
  13.   {COMP ch,d}  {IFCO ESM5}
  14.   {COMP on,}   {IFCO ESM}
  15.   {COMP ch,u}  {IFCO ESM3}
  16.   {COMP ch,}   {IFCO ,ESM}
  17. {:ESM1}  {COMP cf,}   {IFCO CT8,ESM}
  18. {:ESM2}  {SETE-P0 esc_menu}
  19.   {IFCA ,ESM6}  {SEND %an3%Then suddenly...}  {PAUS 1}
  20. {:ESM6}  {RETURN}
  21. {:ESM5}  {SHEL}  {GOTO ESM}
  22. {:ESM3}  {COMP open,y}  {IFCO ESM}
  23. {:ESM8}  {COMP login_name,}  {IFCO ESM}
  24.   {SETV lname,%login_name}  {INPU lname,EDIT: Handle  (3-30 characters)}
  25.   {COMP lname,1}  {IFCO-GE ESM8}
  26.   {LENG %lname}  {COMP _len,3}  {IFCO-L ESM8}
  27.   {LENG %lname}  {COMP _len,30}  {IFCO-G ESM8}
  28. {:ESM9}  {SETV temp,%protocol}  {INPU temp,EDIT: Protocol  (1 letter)}
  29.   {LENG %temp}  {COMP _len,1}  {IFCO ,ESM9}
  30. {:ESM0}  {SETV ch,%al}  {INPU ch,EDIT: Access Level  (0-999)}
  31.   {COMP ch,999}  {IFCO-G ESM0}
  32.   {SETV al,%ch}
  33.   {SETV protocol,%temp}
  34.   {SETV row,%_row}  {SETV col,%_col}  {DISP 2,2,0F,%an9 * Saving * }
  35.   {COMP lname,%login_name}  {IFCO ESM7}
  36.   {SETV login_name,%lname}
  37.   {SETE time_out}
  38.   {CALL update_clist}
  39. {:ESM7}  {CALL write_user}
  40.   {DISP 2,2,07,            }
  41.   {DISP %row,%col,,}
  42.   {SETV row}  {SETV col}  {SETV lname}
  43.   {GOTO ESM}
  44. {:ESM4} {SETV s,2}  {GOTO time_out}
  45.  
  46. {:chat}
  47.   {SETV temp,0}  {SETV ccount,0}
  48.   {WOPE-A %datadir%LOG-1.LOG}  {WRIT %_tim : Chat request}  {WCLO}
  49.   {SEND ^J^M^J%an4%Paging %sysop ...^J^M}
  50.   {SPOC n}  {SEND %an3%Press %an0[ESC]%an3 then %an0[ENTER]%an3 to chat with%an7 %login_name %an3...^J^M}  {SPOC y}
  51. {:CT7}  {INCR ccount}  {SETV-S ch,an%ccount}
  52.   {SEND %ch█}
  53.   {SEND ^G}  {SEND ^G}  {SEND ^G}  {PAUS 2}
  54.   {COMP ccount,5}  {IFCO-G ,CT7}
  55. {:CT6}  {SETV chat,CHAT}
  56.   {SEND ^M%an0%Sorry, %sysop isn't around right now.^J^M}
  57.   {SEND %an0%However, the chat flag has been set.^J^M^J}
  58.   {GOTO CT9}
  59. {:CT8}  {SETV tl,%_ela}
  60.   {SETG 240,time_out}
  61.   {WOPE-A %datadir%LOG-1.LOG}  {WRIT %_tim : Started chat}  {WCLO}
  62.   {COMP cb,y}  {IFCO ,CT14}
  63.   {CAPT y,%datadir%CHAT.LOG}
  64. {:CT14}  {SEND ^J^M^J%an3%You've just entered . . . %an7%The Twilight Zone.  %an3%Reality vanishes.^J^M}
  65.   {SEND %an2(Type "%an0%bye!%an2" on a blank line to exit when desired.)^J^M}
  66.   {SETV cf,1}  {SETV co1,%an0}  {SETV co2,%an3}
  67.   {SETE-P0 esc_menu}
  68.   {PUSH}
  69. {:CT2}  {COMP cf,1}  {IFCO CT3}
  70.   {SEND %co2}  {SETV cf,1}  {GOTO CT4}
  71. {:CT3}  {SEND %co1}  {SETV cf,2}
  72. {:CT4}  {SETV cline}
  73. {:CT5}  {SEND ^J}
  74. {:CT13}  {SEND ^M%cline}
  75.   {GETS-AH cline,78,CT2}
  76.   {COMP cline,/c}  {IFCO switch_c}
  77.   {COMP cline,bye!}  {IFCO CT1}
  78.   {COMP cline,bye!!}  {IFCO time_out}
  79.   {COMP cline,/scroll}  {IFCO view_scroll}
  80.   {COMP cline,NO CARRIER}  {IFCO time_out}
  81.   {LENG %cline}  {COMP %_len,77}  {IFCO-LE CT4}
  82.   {SETV ccount,80}  {SETV dline,0}  {SETV cline, %cline}
  83. {:CT11} {DECR ccount}  {INCR dline}
  84.   {COMP ccount,60}  {IFCO-LE CT4}
  85.   {SUBS ch,%ccount,1,%cline}
  86.   {COMP ch, }  {IFCO ,CT11}
  87.   {COMP ccount,79}  {IFCO CT4}
  88.   {INCR ccount}
  89.   {SUBS cline,%ccount,%dline,%cline}
  90.   {SETV ccount,0}
  91. {:CT12} {INCR ccount}  {SEND ^H}
  92.   {COMP ccount,%dline}  {IFCO ,CT12}
  93.   {GOTO CT5}
  94. {:CT1}  {CAPT n}
  95.   {SETV ch,%_ela}  {DECR ch,%tl}  {INCR tlc,%ch}  {SETV tl}
  96.   {SEND ^J^M^J%an3%You've just left . . . %an7%The Twilight Zone.  %an3%Reality restored.^J^M^J}
  97.   {WOPE-A %datadir%LOG-1.LOG}  {WRIT %_tim : Ended chat}  {WCLO}
  98.   {SETV cf}  {SETV co1}  {SETV co2}  {SETV chat}  {SETV cline}
  99.   {POPS}
  100. {:CT9}  {SETV ccount}
  101.   {SETE-P0 esc_menu}
  102.   {CALL press_any_key}
  103.   {RETURN}
  104.  
  105. {:switch_c}
  106. {:SW1}  {SEND ^M%an0(0 %an1%1 %an2%2 %an3%3 %an4%4 %an5%5 %an6%6 %an7%7%an0)  ^H}
  107.   {GETS-H ch,1,SW1}
  108.   {COMP ch,0}  {IFCO-L SW1}
  109.   {COMP ch,7}  {IFCO-G SW1}
  110.   {SEND ^M                    ^M}
  111.   {COMP cf,1}  {IFCO ,SW3}
  112.   {SETV-S co2,an%ch}  {SEND %co2}  {GOTO SW4}
  113. {:SW3}  {SETV-S co1,an%ch}  {SEND %co1}
  114. {:SW4}  {SETV cline}
  115.   {GOTO CT13}
  116.  
  117. {:view_scroll}
  118.   {SCROLL}
  119.   {GOTO CT4}
  120.  
  121. {:update_clist}
  122.   {ROPE %datadir%CALLERS.LST,UC1}
  123.   {WOPE %datadir%TEMP.000}
  124. {:UC2}  {READ ch}  {READ cline}  {READ dline}
  125.   {COMP ch,%userno}  {IFCO UC3}
  126.   {WRIT %ch}  {WRIT %cline}  {WRIT %dline}  {GOTO UC2}
  127. {:UC3}  {COMP s,1}  {IFCO UC5}
  128. {:UC4}  {WRIT %ch}
  129.   {WRIT %login_name}
  130.   {WRIT %password}
  131. {:UC5}  {READ dline}  {WRIT %dline}  {GOTO UC5}
  132. {:UC1}  {WCLO}
  133.   {EXEC-N COPY %datadir%TEMP.000 %datadir%CALLERS.LST}
  134.   {EXEC-N DEL %datadir%TEMP.000}
  135.   {RETURN}
  136.  
  137. {:write_user}
  138.   {WOPE %userdir%%userno.MHS}
  139.   {WRIT %login_name}
  140.   {WRIT %password}
  141.   {WRIT %al}
  142.   {WRIT %protocol}
  143.   {WRIT %expert}
  144.   {WRIT %a}
  145.   {WRIT %fa}
  146.   {WCLO}
  147.   {RETURN}
  148.  
  149. {:time_out}
  150.   {MACL MACROBBS.MAC,time_out}
  151.  
  152. {:cls}
  153.   {CLEA}
  154.   {COMP on,}  {IFCO CLS3}
  155.   {COMP mnu,A}  {IFCO CLS1}
  156.   {SEND ^[[2J}
  157.   {GOTO CLS2}
  158. {:CLS1} {SEND ^L}
  159. {:CLS2} {DISP 1,1,4F,│                                                                              }
  160.   {DISP 1,3,4E,%login_name #%userno}
  161.   {DISP 1,40,47,AL=%al}
  162.   {DISP 1,48,47,%mspeed}
  163.   {DISP 1,57,47,%_ela mins}
  164.   {DISP 1,70,4F,%an9%%chat}
  165.   {DISP 2,1,4F,└──────────────────────────────────────────────────────────────────────────────}
  166.   {DISP 3,1,07,}
  167. {:CLS3}  {RETURN}
  168.  
  169. {:press_any_key}
  170.   {COMP mnu,a}  {IFCO PAK1}
  171.   {SEND %an3%%an9^[[24;1h^[[24;1f[Press Any Key]%an0}
  172.   {GOTO PAK2}
  173. {:PAK1} {SEND ^J^M^J[Press Any Key]}
  174. {:PAK2} {SETG 240,time_out}
  175.   {GETS-H temp,1,PAK}
  176. {:PAK}  {SEND ^M               ^M}
  177.   {SETV temp}
  178.   {RETURN}
  179.  
  180. {:dsp_file}
  181.   {IFEX %dump_file,,DF5}
  182.   {SETV count,0}  {SETV open,y}
  183.   {ROPE %dump_file,DF3}
  184.   {PUSH}
  185. {:DF1}  {READ dline}
  186.   {COMP e,1}  {IFCO ,DF8}
  187.   {CALL list_quote}
  188. {:DF8}  {SEND ^M%dline^J^M}
  189.   {INCR count}
  190.   {COMP count,22}  {IFCO DF4}
  191.   {GOTO DF1}
  192. {:DF2}  {RCLO}
  193. {:DF3}  {SETV dline}  {SETV ch}  {SETV count}
  194.   {SETV open}
  195.   {POPS}
  196.   {RETURN}
  197.  
  198. {:DF4}  {SETV count,0}
  199.   {SEND More? (Y,n) : }
  200.   {SETG 120,DF1}
  201. {:DF6}  {GETS-H ch,1,DF7}
  202.   {COMP ch,y}   {IFCO DF7}
  203.   {COMP ch,n}   {IFCO DF7}
  204.   {SEND ^H}  {GOTO DF6}
  205. {:DF7}  {SEND ^M                  ^M}
  206.   {COMP ch,n}   {IFCO DF2,DF1}
  207. {:DF5}  {SEND ^J^M^G%an1%Error: %an7%File not found: %dump_file}
  208.   {CALL press_any_key}
  209.   {RETURN}
  210.  
  211. {:expert_tog}
  212.   {COMP expert,ON}
  213.   {IFCO ET1}
  214.   {SETV expert,ON}
  215.   {GOTO ET2}
  216. {:ET1}  {SETV expert,OFF}
  217. {:ET2}  {RETURN}
  218.  
  219. {:cd}
  220.   {IFCA cd1}
  221.   {COMP on,1}  {IFCO time_out}
  222. *-{:cd1}  {COMP on,1}  {IFCO ,cd2}
  223.   {COMP _ela,%tlc}  {IFCO-GE time_out}
  224. {:cd2}  {RETURN}
  225.  
  226. /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
  227. /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
  228. /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
  229. /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
  230. /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
  231.  
  232. {:start}
  233.   {SETE-P0 esc_menu}
  234.   {PUSH}
  235. {:FX1}  {CALL cd}
  236.   {COMP expert,ON}  {IFCO FX3}
  237. {:FX10}  {CALL cls}
  238.   {SEND ^J^M^J^J%an2}
  239.   {SEND ^J^M             ┌───────────────────────────────────────────────────┐}
  240.   {SEND ^J^M             │ %an0▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ %an7%File Base %an0▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ %an2│}
  241.   {SEND ^J^M             └───────────────────────────────────────────────────┘}
  242.   {SEND ^J^M               [%an0%<%an2] Reverse       [%an0%A%an2] Area List       [%an0%>%an2] Forward^J^M}
  243.  
  244.   {SEND ^J^M        [%an0%L%an2] List this area's files   [%an0%P%an2] Protocol Menu    [%an0%M%an2] Message Base}
  245.   {SEND ^J^M        [%an0%U%an2] UPLOAD (give) a file     [%an0%C%an2] Chat             [%an0%H%an2] Hall of Fame}
  246.   {SEND ^J^M        [%an0%D%an2] DOWNLOAD (take) a file   [%an0%X%an2] Xpert Toggle     [%an0%Q%an2] MAIN MENU^J^M}
  247.  
  248. {:FX3}  {ROPE %filedir%F%fa.BAS}  {READ bname}  {READ bal}  {RCLO}
  249.   {SEND ^J^M^J%an2%File Base}
  250.   {SEND ^J^M%an2[%an0%%bname%%an2]  %an0%%_tim^J^M}
  251.   {SETV ch,%tlc}  {DECR ch,%_ela}
  252.   {SEND %an0%Mins Left: %ch^J^M}
  253. {:FX2}  {SEND ^M}  {COMP expert,ON}  {IFCO ,FX11}
  254.   {SEND %an2(%an0?%an2=menu) }
  255. {:FX11}  {SEND %an7%FB Command:  ^H}
  256.   {SETG 240,time_out}
  257. {:FX5}  {IFCA FX9}
  258.   {COMP mspeed,local}  {IFCO ,time_out}
  259. {:FX9}  {CALL cd}
  260.   {GETS-H ch,1,FX9}
  261. {:FX6}
  262.   {COMP ch,*}  {IFCO time_out}
  263.   {COMP ch,?}  {IFCO FX10}
  264.   {COMP ch,<}  {IFCO fast_bak}
  265.   {COMP ch,>}  {IFCO fast_for}
  266.   {COMP ch,a}  {IFCO area_chg}
  267.   {COMP ch,c}  {IFCO chat}
  268.   {COMP ch,x}  {IFCO expert_tog}
  269.   {COMP ch,l}  {IFCO list_files}
  270.   {COMP ch,p}  {IFCO get_protocol}
  271.   {COMP ch,q}  {IFCO FX8}
  272.   {COMP ch,m}  {IFCO msg_base}
  273.   {SETV dline,udh}  {INST dline,%ch}  {IFCO ,FX2}  {COMP al,0}  {IFCO FX7}
  274.   {COMP ch,u}  {IFCO ufiles}
  275.   {COMP ch,d}  {IFCO dfiles}
  276.   {COMP ch,h}  {IFCO hall}
  277.  
  278. {:FX7}  {SEND ^J^M%an1%Sorry, your access level does not allow.^J^M}  {GOTO FX2}
  279.  
  280. {:FX8}
  281.   {SETV files}  {SETV dfiles}  {SETV desc}
  282.   {MACL MACROBBS.MAC,main_menu}
  283.  
  284. {:msg_base}
  285.   {IFEX %msgsdir%A%a.BAS,MB2}
  286.   {IFEX %msgsdir%A*.BAS,,FX2}
  287.   {SETV a,0}
  288. {:MB1}  {INCR a}
  289.   {COMP a,%mhigh}  {IFCO-G FX2}
  290.   {IFEX %msgsdir%A%a.BAS,,MB1}
  291. {:MB2}
  292.   {ROPE %msgsdir%A%a.BAS,MB1}  {READ ch}  {READ ch}  {RCLO}
  293.   {COMP ch,%al}  {IFCO-G MB1}
  294.   {SETV files}  {SETV dfiles}  {SETV desc}
  295.   {MACL MACROMSG.MAC,start}
  296.  
  297. {:hall}
  298.   {SETV files}  {SETV dfiles}  {SETV desc}
  299.   {MACL MACROREG.MAC,start}
  300.  
  301. {:fast_for}
  302.   {COMP fa,%fhigh}  {IFCO FX2}
  303.   {SETV ch,%fa}
  304. {:FF1}  {INCR ch}
  305.   {COMP ch,%fhigh}  {IFCO-G FX2}
  306.   {IFEX %filedir%F%ch.BAS,,FF1}
  307.   {ROPE %filedir%F%ch.BAS,FF1}  {READ dline}  {READ temp}  {RCLO}
  308.   {COMP al,%temp}  {IFCO-L FF1}
  309.   {SETV fa,%ch}
  310. {:FF2}  {GOTO FX3}
  311.  
  312. {:fast_bak}
  313.   {COMP fa,1}  {IFCO FX2}
  314.   {SETV ch,%fa}
  315. {:FB1}  {DECR ch}
  316.   {COMP ch,1}  {IFCO-L FX2}
  317.   {IFEX %filedir%F%ch.BAS,,FB1}
  318.   {ROPE %filedir%F%ch.BAS,FB1}  {READ dline}  {READ temp}  {RCLO}
  319.   {COMP al,%temp}  {IFCO-L FB1}
  320.   {SETV fa,%ch}
  321. {:FB2}  {GOTO FX3}
  322.  
  323. {:area_chg}
  324.   {CALL cls}
  325.   {SEND ^J^M%an7%File areas:^J^M^J^M}
  326.   {SETV count,0}
  327. {:AC1}  {INCR count}
  328.   {COMP count,%fhigh}  {IFCO-G AC2}
  329.   {IFEX %filedir%F%count.BAS,,AC1}
  330.   {ROPE %filedir%F%count.BAS,AC1}  {READ bname}  {READ bal}  {RCLO}
  331.   {COMP al,%bal}  {IFCO-L AC1}
  332.   {SEND %an7%%count> %an2%%bname^J^M}
  333.   {GOTO AC1}
  334. {:AC2}  {SEND ^J^M}
  335. {:AC3}  {SEND ^M%an3%Which will it be?%an7   ^H^H}
  336.   {SETG 120,time_out}
  337.   {GETS ch,2,AC4}
  338.   {COMP ch,1}  {IFCO-L AC3}
  339.   {COMP ch,%fhigh}  {IFCO-G AC3}
  340.   {IFEX %filedir%F%ch.BAS,,AC3}
  341.   {ROPE %filedir%F%ch.BAS,AC3}  {READ bname}  {READ bal}  {RCLO}
  342.   {COMP al,%bal}  {IFCO-L AC3}
  343.   {SETV fa,%ch}
  344. {:AC4}  {RETURN}
  345.  
  346. {:dfiles}
  347.   {CALL cls}
  348.   {SETV proto}
  349.   {SETV dline,yz}
  350.   {INST dline,%protocol}  {IFCO ,DX6}
  351.   {IFEX %dszdir,,DX5}
  352. {:DX6}  {SEND ^J^M%an2%Enter the name of the file you wish to download.  (ENTER=abort)^J^M}
  353. {:DX4}  {SEND %an7%Filename:%an0 }
  354.   {SETG 120,time_out}
  355.   {GETS files,12,DX1}
  356.   {SETV files,%filedir%F%fa\%files}
  357.   {IFEX %files,,DX3}
  358.   {COMP protocol,}  {IFCO ,DX0}
  359.   {CALL get_protocol}
  360.   {SETV dline,yz}
  361.   {INST dline,%protocol}  {IFCO ,DX0}
  362.   {IFEX %dszdir,,DX5}
  363. {:DX0}  {SETV proto,s%protocol}
  364.   {CALL transfer_file}
  365.   {IFCO DX2}
  366.   {WOPE-A %datadir%LOG-1.LOG}  {WRIT ▒░▒░▒  ERRONEOUS DOWNLOAD at %_tim of %files  ▒░▒░▒} {WCLO}
  367.   {SEND ^J^M%an1%Erroneous download.^J^M}
  368.   {CALL press_any_key}
  369. {:DX1}  {SETV files}
  370.   {RETURN}
  371. {:DX2}  {WOPE-A %datadir%LOG-1.LOG}  {WRIT %_tim : successful download of %files}  {WCLO}
  372.   {SEND ^J^M%an7%Successful download.^J^M}
  373.   {GOTO DX1}
  374. {:DX3}  {SEND ^J^M%an1%Invalid filename.  Please try again.^J^M}
  375.   {GOTO DX4}
  376. {:DX5}  {BEEP}
  377.   {SEND ^J^M%an1"%dszdir" not found.%an0  Try XMODEM or XMODEM-1K.}
  378.   {COMP expert,ON}  {IFCO DX1}
  379.   {CALL press_any_key}
  380.   {GOTO DX1}
  381.  
  382. {:ufiles}
  383.   {CALL cls}
  384.   {COMP mspeed,local}  {IFCO UF16}
  385.   {SETV dline,yz}
  386.   {INST dline,%protocol}  {IFCO ,UF16}
  387.   {IFEX %dszdir,,DX5}
  388. {:UF16}  {SEND ^J^M^J%an7%Upload a file to %an3%%bname%%an7?  %an0(y,%an7%N%an0) : }
  389.   {SETG 120,time_out}
  390. {:UF9}  {GETS-H ch,1,UF1}
  391.   {COMP ch,n}  {IFCO UF1}
  392.   {COMP ch,y}  {IFCO UF15}
  393.   {SEND ^H}  {GOTO UF9}
  394. {:UF15}  {SETV proto}
  395.   {SEND ^J^M^J%an4%Enter the name of the file you wish to upload.  (ENTER=abort)^J^M}
  396. {:UF8}  {SEND %an7%Filename:%an0 }
  397.   {GETS dfiles,12,UF1}
  398.   {SETV files,%filedir%F%fa\%dfiles}
  399.   {COMP mspeed,local}  {IFCO ,UF5}
  400.   {IFEX %files,,UF7}
  401.   {SEND ^J^M}
  402.   {EXEC-N DIR %filedir%F%fa\%dfiles > %datadir%TEMP.000}
  403.   {ROPE %datadir%TEMP.000,UF14}
  404.   {WOPE-A %filedir%F%fa.LST}
  405. {:UF10} {READ dline}
  406.   {COMP %dline,}  {IFCO UF10}
  407.   {SUBS ch,1,1,%dline}  {COMP ch, }  {IFCO UF10}  {COMP ch,.}  {IFCO UF10}
  408.   {INST %dline,<DIR>}  {IFCO UF10}
  409.   {SUBS dline,1,23,%dline}
  410.   {SEND ^J^M%an3%%dline  }
  411.   {SEND %an1%Upload this file?  %an0(Yes,%an7%N%an0%o,Quit) : }
  412. {:UF11}  {GETS-H ch,1,UF10}
  413.   {COMP ch,n}  {IFCO UF10}
  414.   {COMP ch,q}  {IFCO UF13}
  415.   {COMP ch,y}  {IFCO UF12}
  416.   {SEND ^H}  {GOTO UF11}
  417. {:UF12}  {SEND ^J^M%an7%File description:%an0 }
  418.   {GETS desc,53,UF10}
  419.   {WRIT   %dline %desc}
  420.   {GOTO UF10}
  421. {:UF13}  {RCLO}
  422. {:UF14}  {WCLO}
  423.   {GOTO UF1}
  424. {:UF5}  {IFEX %files,UF4}
  425.   {COMP protocol,}  {IFCO ,UF0}
  426.   {CALL get_protocol}
  427.   {SETV dline,yz}
  428.   {INST dline,%protocol}  {IFCO ,UF0}
  429.   {IFEX %dszdir,,DX5}
  430. {:UF0}  {SETV proto,r%protocol}  {SETV tl,%_ela}
  431.   {CALL transfer_file}
  432.   {IFCO ,UF3}
  433.   {WOPE-A %datadir%LOG-1.LOG}  {WRIT %_tim : successful upload of %files}  {WCLO}
  434.   {SETV ch,%_ela}  {DECR ch,%tl}  {INCR tlc,%ch}  {SETV tl}
  435. {:UF6}  {EXEC-N DIR %filedir%F%fa\%dfiles > %datadir%TEMP.000}
  436.   {ROPE %datadir%TEMP.000,UF14}
  437. {:UF20} {READ dline}
  438.   {COMP %dline,}  {IFCO UF20}
  439.   {SUBS ch,1,1,%dline}  {COMP ch, }  {IFCO UF20}  {COMP ch,.}  {IFCO UF20}
  440.   {INST %dline,<DIR>}  {IFCO UF20}
  441.   {RCLO}
  442.   {SUBS dline,1,23,%dline}
  443.   {SEND ^J^M%an7%File description:%an0 }
  444. {:UF2}  {GETS desc,53,UF2}
  445.   {WOPE-A %filedir%F%fa.LST}  {WRIT Φ %dline %desc}  {WCLO}
  446. {:UF1}  {SETV files} {SETV dfiles} {SETV desc} {SETV tl} {SETV proto}
  447.   {RETURN}
  448. {:UF3}  {WOPE-A %datadir%LOG-1.LOG}  {WRIT ▒░▒░▒  ERRONEOUS UPLOAD at %_tim of %files  ▒░▒░▒}  {WCLO}
  449.   {GOTO UF1}
  450. {:UF4}  {SEND ^J^M%an1%File already exists.^J^M}  {GOTO UF8}
  451. {:UF7}  {SEND ^J^M%an1%Invalid filename.  Please try again.^J^M}  {GOTO UF8}
  452.  
  453. {:list_files}
  454.   {CALL cls}
  455.   {SETV dump_file,%filedir%F%fa.LST}
  456.   {CALL dsp_file}
  457.   {COMP expert,ON}  {IFCO LF}
  458.   {CALL Press_Any_Key}
  459. {:LF}  {RETURN}
  460.  
  461. {:get_protocol}
  462.   {PUSH}
  463.   {SEND ^J^M}
  464. {:GP2}  {COMP expert,ON}  {IFCO GP4}
  465.   {CALL CLS}
  466.   {SEND ^J^M^J^J^J%an1}
  467.   {SEND ^J^M             ┌───────────────────────────────────────────────────┐}
  468.   {SEND ^J^M             │ %an0▒▒▒▒▒▒▒▒▒▒▒▒ %an7%File Transfer Protocols %an0▒▒▒▒▒▒▒▒▒▒▒▒ %an1│}
  469.   {SEND ^J^M             └───────────────────────────────────────────────────┘}
  470.   {SEND ^J^M                                 [%an0%Z%an1] Zmodem}
  471.   {SEND ^J^M                                 [%an0%Y%an1] Ymodem}
  472.   {SEND ^J^M                                 [%an0%X%an1] Xmodem csum}
  473.   {SEND ^J^M                                 [%an0%K%an1] Xmodem-1k^J^M}
  474.  
  475.   {SEND ^J^M%an0%(When in doubt, choose Z ...
  476.   {SEND ^J^MYou can always change it later, if needed.)^J^M}
  477. {:GP4}  {SEND ^J^M}
  478. {:GP1}  {SEND ^M%an1%Protocol:%an0  ^H}
  479.   {SETG 120,time_out}
  480. {:GP3}  {GETS-H ch,1,GP3}
  481.   {SETV dline,xkyz}  {INST dline,%ch}  {IFCO ,GP1}
  482.   {SETV protocol,%ch}
  483.   {POPS}
  484.   {RETURN}
  485.  
  486. {:transfer_file}
  487.   {COMP proto,sz}  {IFCO send_zmodem}
  488.   {COMP proto,sy}  {IFCO send_ymodem}
  489.   {COMP proto,sx}  {IFCO send_xcsum}
  490.   {COMP proto,sk}  {IFCO send_x1k}
  491.   {COMP proto,rz}  {IFCO recv_zmodem}
  492.   {COMP proto,ry}  {IFCO recv_ymodem}
  493.   {COMP proto,rx}  {IFCO recv_xcsum}
  494.   {COMP proto,rk}  {IFCO recv_x1k}
  495.   {SEND ^J^M%an1%Invalid protocol.^J^M}
  496.   {CALL press_any_key}
  497. {:DL1}  {SETV proto}
  498.   {RETURN}
  499.  
  500. {:send_zmodem}
  501.   {SEND ^J^MStart your zmodem download now.}
  502.   {EXEC-D %dszdir port %_port ha both sz %files}
  503.   {COMP %_err,0}
  504.   {RETURN}
  505.  
  506. {:send_ymodem}
  507.   {SEND ^J^MStart your ymodem download now.}
  508.   {EXEC-D %dszdir port %_port ha both sb -k %files}
  509.   {COMP %_err,0}
  510.   {RETURN}
  511.  
  512. {:send_x1k}
  513.   {SEND ^J^MStart your xmodem-1k download now.}
  514.   {SXMO-K %files}
  515.   {COMP %_err,0}
  516.   {RETURN}
  517.  
  518. {:send_xcsum}
  519.   {SEND ^J^MStart your xmodem (csum) download now.}
  520.   {SXMO-K %files}
  521.   {COMP %_err,0}
  522.   {RETURN}
  523.  
  524. {:recv_zmodem}
  525.   {SEND ^J^MStart your zmodem upload now.}
  526.   {EXEC-D %dszdir port %_port ha both rz %files}
  527.   {COMP %_err,0}
  528.   {RETURN}
  529.  
  530. {:recv_ymodem}
  531.   {SEND ^J^MStart your ymodem upload now.}
  532.   {EXEC-D %dszdir port %_port ha both rb -k %files}
  533.   {COMP %_err,0}
  534.   {RETURN}
  535.  
  536. {:recv_x1k}
  537.   {SEND ^J^MStart your xmodem-1k upload now.}
  538.   {RXMO-K %files}
  539.   {COMP %_err,0}
  540.   {RETURN}
  541.  
  542. {:recv_xcsum}
  543.   {SEND ^J^MStart your xmodem (csum) upload now.}
  544.   {RXMO-A %files}
  545.   {COMP %_err,0}
  546.   {RETURN}
  547.  
  548.